/* const myDirective = {
  // 在绑定元素的 attribute 前
  // 或事件监听器应用前调用
  created(el, binding, vnode, prevVnode) {
    // 下面会介绍各个参数的细节
  },
  // 在元素被插入到 DOM 前调用
  beforeMount(el, binding, vnode, prevVnode) {},
  // 在绑定元素的父组件
  // 及他自己的所有子节点都挂载完成后调用
  mounted(el, binding, vnode, prevVnode) {},
  // 绑定元素的父组件更新前调用
  beforeUpdate(el, binding, vnode, prevVnode) {},
  // 在绑定元素的父组件
  // 及他自己的所有子节点都更新后调用
  updated(el, binding, vnode, prevVnode) {},
  // 绑定元素的父组件卸载前调用
  beforeUnmount(el, binding, vnode, prevVnode) {},
  // 绑定元素的父组件卸载后调用
  unmounted(el, binding, vnode, prevVnode) {}
} */

export const mouseDrag = {
  mounted(el, binding) {
    const handleCallback = binding.value
    let isMove = false
    let baseX = 0
    let baseY = 0
    el.addEventListener('mousedown', (e) => {
      isMove = true
      baseX = e.x
      baseY = e.y
    })
    document.addEventListener('mousemove', (e) => {
      if(isMove) {
        const x = e.screenX - baseX
        const y = e.screenY - baseY
        // ipcRenderer.send('page-move', {screenX, screenY})
        handleCallback({x, y})
      }
    })
    document.addEventListener('mouseup', (e) => {
      isMove = false
    })
  }
}